from typing import Dict
from typing import List
from enum import IntEnum


class HourActive:
  segment: int
  num: int
  def __init__(self) -> None:
   self.segment = 0
   self.num = 0


class MonthlyActive:
  month: int
  num: int
  def __init__(self) -> None:
   self.month = 0
   self.num = 0


class MonthlyRevenu:
  month: int
  revenu: float
  def __init__(self) -> None:
   self.month = 0
   self.revenu = 0.0


class MonthlyVolume:
  month: int
  volume: float
  def __init__(self) -> None:
   self.month = 0
   self.volume = 0.0


class ProductRevenuShare:
  category: str
  share: float
  def __init__(self) -> None:
   self.category = ""
   self.share = 0.0


class ProductVolumeShare:
  category: str
  share: float
  def __init__(self) -> None:
   self.category = ""
   self.share = 0.0


class MonthlyRegister:
  month: int
  num: float
  def __init__(self) -> None:
   self.month = 0
   self.num = 0.0


class UserActiveData:
  online_num: int
  monthly_active_datas: List[MonthlyActive]
  hour_active_datas: List[HourActive]
  def __init__(self) -> None:
   self.online_num = 0
   self.monthly_active_datas = []
   self.hour_active_datas = []


class ProductSaleData:
  revenu: float
  volume: int
  monthly_revenu_datas: List[MonthlyRevenu]
  monthly_volume_datas: List[MonthlyVolume]
  product_revenu_share_datas: List[ProductRevenuShare]
  product_volume_share_datas: List[ProductVolumeShare]
  def __init__(self) -> None:
   self.revenu = 0.0
   self.volume = 0
   self.monthly_revenu_datas = []
   self.monthly_volume_datas = []
   self.product_revenu_share_datas = []
   self.product_volume_share_datas = []


class DataRequest:
  year: int
  def __init__(self) -> None:
   self.year = 0


class UserRegisterData:
  total_num: int
  monthly_register_datas: List[MonthlyRegister]
  def __init__(self) -> None:
   self.total_num = 0
   self.monthly_register_datas = []


